第三方依赖管理工具 renovate(强烈推荐)
概述
Renovate 是一个比 Dependabot 功能更强大的依赖管理工具。相比 Dependabot,Renovate 提供了更丰富的配置选项、更灵活的更新策略和更好的自动化能力。本节介绍 Renovate 的安装、配置和使用。
Renovate vs Dependabot
| 维度 | Dependabot | Renovate |
|---|---|---|
| 安装方式 | GitHub 内置 | 需安装 GitHub App |
| 配置灵活度 | 较低 | 非常高 |
| 分组更新 | 不支持 | 支持(按需分组) |
| 自动合并 | 需额外配置 | 原生支持 |
| 更新策略 | 有限 | 丰富(多策略可选) |
| 多包管理器 | 支持 | 支持更多 |
| Monorepo 支持 | 基础 | 完善 |
| Pin 版本 | 默认范围 | 可配置 |
安装 Renovate
GitHub App 安装
- 访问
github.com/apps/renovate - 点击 Install
- 选择授权的仓库(全部或指定仓库)
- 完成授权
验证安装
在 GitHub Settings → Developer settings → GitHub Apps 中查看已授权的应用列表,确认 Renovate 已安装。
配置文件
// renovate.json(项目根目录)
{
"extends": [
"config:base"
],
"schedule": ["every weekend"],
"packageRules": [
{
"matchPackagePatterns": ["*"],
"semanticCommitType": "deps",
"semanticCommitScope": null
},
{
"groupName": "element-plus",
"matchPackagePrefixes": ["element-plus"]
},
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true,
"platformAutomerge": true
},
{
"matchDepTypes": ["devDependencies"],
"automerge": true
}
],
"prConcurrentLimit": 5,
"prHourlyLimit": 0,
"rangeStrategy": "bump",
"lockFileMaintenance": {
"enabled": true,
"schedule": ["before 5am on Monday"]
}
}
json
核心配置项
| 配置项 | 说明 |
|---|---|
extends | 继承预设配置 |
schedule | 更新检查时间 |
packageRules | 按包名/类型定义更新规则 |
automerge | 自动合并通过 CI 的 PR |
groupName | 将多个依赖合并为一个 PR |
prConcurrentLimit | 同时打开的最大 PR 数 |
rangeStrategy | 版本范围策略 |
lockFileMaintenance | lock 文件维护 |
更新策略(rangeStrategy)
| 策略 | 说明 |
|---|---|
auto | 自动选择(默认) |
pin | 锁定到精确版本 |
bump | 更新范围上限 |
replace | 替换整个范围 |
widen | 扩大范围 |
Renovate 工作流程
Renovate 按计划检查项目依赖
↓
发现新版本
↓
根据 packageRules 分组/过滤
↓
创建 Pull Request(含 changelog)
↓
CI 测试运行
↓
测试通过 + automerge: true → 自动合并
测试通过 + automerge: false → 等待人工审核
text
自动合并配置
{
"packageRules": [
{
"matchUpdateTypes": ["patch"],
"automerge": true,
"platformAutomerge": true
},
{
"matchDepTypes": ["devDependencies"],
"automerge": true
},
{
"matchUpdateTypes": ["major"],
"automerge": false
}
]
}
json
| 更新类型 | 默认行为 |
|---|---|
patch(补丁更新) | 自动合并 |
minor(小版本更新) | 可配置自动合并 |
major(大版本更新) | 人工审核 |
Renovate 官方文档
- 官网:
docs.renovatebot.com - GitHub Integration:
docs.renovatebot.com/modules/platform/github - 配置参考:
docs.renovatebot.com/configuration-options
实践要点
- Renovate 功能比 Dependabot 更丰富,配置更灵活,强烈推荐使用
- 通过
packageRules可以按包名、类型、更新级别定义不同的更新策略 automerge+platformAutomerge实现 CI 通过后自动合并,减少人工操作groupName可将相关依赖合并为一个 PR(如 Element Plus 全家桶)- 建议对 patch 和 devDependencies 开启自动合并,major 版本需人工审核
↑